d0be32394774c5c9c57070fc104821e5155aa88f,hbase-common/src/test/java/org/apache/hadoop/hbase/util/TestOrderedBytes.java,TestOrderedBytes,testBlobCopy,#,777

Before Change


        assertEquals("Buffer overflow.", 0, a[a.length - 1]);

        // verify skip
        buf1.setPosition(0);
        assertEquals("Surprising return value.", expectedLen, OrderedBytes.skip(buf1));
        assertEquals("Did not skip enough bytes.", expectedLen, buf1.getPosition());

        // verify decode
        buf1.setPosition(0);
        assertArrayEquals("Deserialization failed.", val, OrderedBytes.decodeBlobCopy(buf1));
        assertEquals("Did not consume enough bytes.", expectedLen, buf1.getPosition());
      }

After Change


        // allocate a buffer 3-bytes larger than necessary to detect over/underflow
        int expectedLen = val.length + (Order.ASCENDING == ord ? 1 : 2);
        byte[] a = new byte[expectedLen + 3];
        PositionedByteRange buf1 = new SimplePositionedByteRange(a, 1, expectedLen + 1);
        buf1.setPosition(1);

        // verify encode
        assertEquals("Surprising return value.",
          expectedLen, OrderedBytes.encodeBlobCopy(buf1, val, ord));
        assertEquals("Broken test: serialization did not consume entire buffer.",
          buf1.getLength(), buf1.getPosition());
        assertEquals("Surprising serialized length.", expectedLen, buf1.getPosition() - 1);
        assertEquals("Buffer underflow.", 0, a[0]);
        assertEquals("Buffer underflow.", 0, a[1]);
        assertEquals("Buffer overflow.", 0, a[a.length - 1]);

        // verify skip
        buf1.setPosition(1);
        assertEquals("Surprising return value.", expectedLen, OrderedBytes.skip(buf1));
        assertEquals("Did not skip enough bytes.", expectedLen, buf1.getPosition() - 1);

        // verify decode
        buf1.setPosition(1);
        assertArrayEquals("Deserialization failed.", val, OrderedBytes.decodeBlobCopy(buf1));
        assertEquals("Did not consume enough bytes.", expectedLen, buf1.getPosition() - 1);
      }